package com.cdu.mapper;

import com.cdu.pojo.entity.User;
import com.cdu.pojo.vo.ProductVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserMapper {
    /**
     * 新增用户
     * @param user 用户
     * @return
     */
    int insert(User user);

    /**
     * 根据用户名查询用户数据
     * @param username 用户名
     * @return
     */
    User getUserByName(String username);

    /**
     * 设置头像
     * @param user 用户包含了头像
     * @return
     */
    int setAvatar(User user);
    /**
     * 根据用户ID查询用户数据
     * @param userId 用户ID
     * @return 用户信息
     */
    @Select("SELECT * FROM t_user WHERE id = #{userId}")
    User getUserById(@Param("userId") Integer userId);

    /**
     * 根据分类id查询商品列表
     * @param categoryId 分类id
     * @param userId 用户编号。可能为空
     * @return 商品列表
     */
    List<ProductVO> getProductListByCategoryId(@Param("categoryId") int categoryId, @Param("userId") Integer userId);

    /*修改密码*/
    Integer updatePassword(@Param("id") Integer id,
                           @Param("password") String password,
                           @Param("modifiedUser") String modifiedUser);

    /*修改个人信息*/
    Integer updateUserInfo(User user);

}